CloudWatch Logs をS3 へ転送する際にKinesis Data Firehoseのデータ転送が失敗しました、解決方法を教えてください。

CloudWatch Logs をS3 へ転送する際にKinesis Data Firehoseのデータ転送が失敗しました、解決方法を教えてください。

Clock Icon2023.08.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

CloudWatch logsからKinesis Data Firehoseの配信ストリームへのデータ転送を実施するため、サブスクリプションフィルダーの設定を行っています。
サブスクリプションフィルダーの設定にて以下のエラーメッセージが出力されて設定が完了しません。
解決方法を教えてください。

Could not deliver test message to specified Firehose stream. Check if the given Firehose stream is in ACTIVE state.

現状確認

CloudTrailイベント履歴でエラー発生時刻のPutSubscriptionFilterというイベント名を調査した結果、上記のエラーメッセージが表示されました。
また、roleArnで対象ロール名が特定できました。
対象ロールを確認ましたところ、kinesis firehose サブスクリプションフィルターで設定するIAMロールは必要な権限が付与されていない状況です。

どう更新すればいいの?

対象IAMロールには、logs.ap-northeast-1.amazonaws.comの信頼ポリシーを付与することでエラーが解消されるかご確認ください。
注記
※ap-northeast-1の部分は対象リージョンに書き換えてください。

参考資料

[1]CloudWatch Logs サブスクリプションフィルターの使用 - Amazon CloudWatch Logs
[2]put-subscription-filter — AWS CLI 1.29.32 Command Reference

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.